const jwt = require('jsonwebtoken');  
const secretKey = 'promise123456'; // 用于签名的密钥  
  
// 生成JWT  
function generateToken(user) {  
  const payload = {  
    id: user.id, // 将用户ID作为JWT负载的一部分  
    // 其他需要包含在JWT中的用户信息  
  };  
  
  const token = jwt.sign(payload, secretKey, {  
    expiresIn: '1h', // 设置JWT的过期时间，例如1小时  
  });  
  
  return token;  
}  
  
// 验证JWT  
function verifyToken(token) {  
  try {  
    const decoded = jwt.verify(token, secretKey);  
    return decoded;  
  } catch (error) {  
    return null; // 验证失败，返回null或抛出错误  
  }  
}  
  
// 获取当前时间与JWT过期时间的差值（秒）  
function getTokenExpiresInSeconds(token) {  
  const decoded = verifyToken(token);  
  if (decoded) {  
    const now = Date.now();  
    const expiresAt = decoded.exp * 1000; // JWT的过期时间戳（毫秒）  
    const expiresInSeconds = Math.floor((expiresAt - now) / 1000);  
    return expiresInSeconds;  
  } else {  
    return null; // 验证失败，返回null或抛出错误  
  }  
}